package 简单.前缀和与差分;

/**
 * 给你一个正整数 n ，找出满足下述条件的 中枢整数 x ：
 * 1 和 x 之间的所有元素之和等于 x 和 n 之间所有元素之和。
 * 返回中枢整数 x 。如果不存在中枢整数，则返回 -1 。题目
 * 保证对于给定的输入，至多存在一个中枢整数。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/find-the-pivot-integer
 */
public class 找出中枢整数_2485 {

    public static void main(String[] args) {

    }

    public int pivotInteger(int n) {
        int[] prefixSum = new int[n + 1];
        int[] suffixSum = new int[n + 1];
        for (int i = 1; i <= n; i++) {
            prefixSum[i] = prefixSum[i - 1] + i;
        }
        suffixSum[n] = n;
        for (int i = n - 1; i >= 0; i--) {
            suffixSum[i] = suffixSum[i + 1] + i;
        }

        for (int i = 1; i <= n; i++) {
            if (prefixSum[i] == suffixSum[i]) {
                return i;
            }
        }
        return -1;
    }

}
